/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package ClassesListas;

import ClassesUnicas.Profissao;
import ClassesUnicas.ComboBoxMultiData;
import DAO.DAOProfissao;
import DAO.MySQL.DAOProfissaoMySQL;
import java.util.ArrayList;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JComboBox;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

/**
 * Profissoes
 * 
 * Versao 1.0
 * 
 * Data Criação 13/03/2014
 *
 * @author Igor
 */
public class Profissoes {
    //Atributos
    private ArrayList<Profissao> profissoes;
    private DAOProfissao profissaoDAO;
    
    //Construtor
    public Profissoes(){
        this.profissoes = new ArrayList<Profissao>();
        this.profissaoDAO = new DAOProfissaoMySQL();
    }

    //Getters e Setters
    /**
     * @return the profissoes
     */
    public ArrayList<Profissao> getProfissoes() {
        return profissoes;
    }

    /**
     * @param profissoes the profissoes to set
     */
    public void setProfissoes(ArrayList<Profissao> profissoes) {
        this.profissoes = profissoes;
    }

    /**
     * @return the profissaoDAO
     */
    public DAOProfissao getProfissaoDAO() {
        return profissaoDAO;
    }

    /**
     * @param profissaoDAO the profissaoDAO to set
     */
    public void setProfissaoDAO(DAOProfissao profissaoDAO) {
        this.profissaoDAO = profissaoDAO;
    }

    //Outros Metodos
    /**
     * Lista, em uma tabela, as profissoes
     * @param tabela 
     */
    public void listarProfissoes(JTable tabela){
        DefaultTableModel dtm = (DefaultTableModel) tabela.getModel();
        int i = 0;

        //Limpa a tabela
        while(dtm.getRowCount() != 0){
            dtm.removeRow(0);
        }
        
        tabela.getColumnModel().getColumn(0).setPreferredWidth(50);
        tabela.getColumnModel().getColumn(1).setPreferredWidth(tabela.getWidth()-50);

        i = 0;
        while (i < getProfissoes().size()) {
            String codigo = Long.toString(getProfissoes().get(i).getIdProfissao());
            String descricao = getProfissoes().get(i).getDescricao();

            dtm.addRow(new Object[]{codigo, descricao});   // um "" para cada coluna
            i++;
        }
    }
    
    /**
     * Lista, em um comboBox, as profissoes
     * @param comboBox 
     */
    public void listarProfissoes(JComboBox comboBox){
        DefaultComboBoxModel dtm = (DefaultComboBoxModel) comboBox.getModel();
        
        int i = 0;

        //Limpa a tabela
        comboBox.removeAllItems();

        comboBox.addItem(new ComboBoxMultiData(0, 0, "<Escolha um item>"));
        i = 0;
        while (i < getProfissoes().size()) {
            long codigo = getProfissoes().get(i).getIdProfissao();
            String descricao = getProfissoes().get(i).getDescricao();
            comboBox.addItem(new ComboBoxMultiData(codigo, 0, descricao));
            i++;
        }
    }
}
